<?php
/**
 * 支付网关
 * @author Administrator
 *
 */
class payAction extends globalAction {

    public function _initialize() {
        parent::_initialize();
        parent::_loginRequire();
        $this->orderDao = D('Order');
        $this->orderViewDao = $this->orderDao->switchModel("View",array("viewFields"));
    }

	function Payment() {
        
        /***********************************************************************
         * 参数检查
         **********************************************************************/
        $orderNum = trim($_GET['orderNum']);
        $fortype  = trim($_GET['fortype']);
        if(empty($orderNum))
            parent::_message(
                'error',
                '请提供订单号！',
                C('TMPL_PARSE_STRING.__UCHOME__').'/cp.php?ac=mybook'
            );
        
        /***********************************************************************
         * 获取订单数据
         **********************************************************************/
        $conditions[$this->orderDao->_map['orderNum']] = array('eq', $orderNum);
        $conditions[$this->orderDao->_map['uid']] = array('eq', __USERID__);
        $conditions[$this->orderDao->_map['isDel']] = array('exp', 'is null');
        
        $orderInfo = $this->orderViewDao
            ->where($conditions)
            ->find();
        if(empty($orderInfo))
            parent::_message(
                'error',
                '没有找到您的订单！',
                C('TMPL_PARSE_STRING.__UCHOME__').'/cp.php?ac=mybook'
            );

        /***********************************************************************
         * 防止多次支付
         **********************************************************************/
		switch($fortype) {
            case 'a':
                if(!empty($depositConfirm))
                    parent::_message(
                        'error',
                        '您已经支付过订金了！',
                        C('TMPL_PARSE_STRING.__UCHOME__').'/cp.php?ac=mybook'
                    );
                $money = $orderInfo["depositAmount"];
                break;
            case 'b':
                if(empty($depositConfirm))
                    parent::_message(
                        'error',
                        '请先支付订金，然后才能支付余款！',
                        C('TMPL_PARSE_STRING.__UCHOME__').'/cp.php?ac=mybook'
                    );
                if(!empty($balanceConfirm))
                    parent::_message(
                        'error',
                        '您已经支付过余款了！',
                        C('TMPL_PARSE_STRING.__UCHOME__').'/cp.php?ac=mybook'
                    );
                $money = $orderInfo["balanceAmount"];
                break;
            default:
                parent::_message(
                    'error',
                    '要支付的款项不明确！',
                    C('TMPL_PARSE_STRING.__UCHOME__').'/cp.php?ac=mybook'
                );
        }
        /***********************************************************************
         * 构建支付页面
         **********************************************************************/
        $product_name = "预定梦之旅产品--".$orderInfo['innName'];
        $product_desc = "预定梦之旅产品--".$orderInfo['innName']."的"
                        .$orderInfo['room_name']
                        .",入住时间:".date('Y-m-d', $orderInfo["checkinDate"]);
        
        $paytype=A("Home/paytype");
		$paytypehtm=array();
		//转帐支付
		$paytypehtm["zhuangzhangrmb"]=$paytype->zhuangzhangrmb();
		//支付宝
		$arr["out_trade_no"]  = $orderInfo['orderNum'];// str商户的订单号  
	 	$arr["aliorder"]      = $product_name; //订单名称，显示在支付宝收银台里的“商品名称”里，显示在支付宝的交易管理的“商品名称”的列表里。
	  	$arr["alibody"]       = $product_desc; //订单描述、订单详细、订单备注，显示在支付宝收银台里的“商品描述”里
	  	$arr["jetype"]        = $fortype;//支付订金a还是余款b
	  	$arr["alimoney"]      = $money;//本次应该支付金额
		$paytypehtm["alipay"] = $paytype->alipay($arr);
		//中国信用卡
		unset($arr);
		$arr["pMerCode"]            = $orderInfo['orderNum']; //订单号
		$arr["pAmount"]             = $money;
	    $arr["pAttach"]             = $product_desc; //订单描述、订单详细、订单备注，显示在支付宝收银台里的“商品描述”里
	    $arr["pGoodsInfo"]          = $product_name; //订单名称，显示在支付宝收银台里的“商品名称”里，显示在支付宝的交易管理的“商品名称”的列表里。
		$paytypehtm["CardOnlineRmb"]= $paytype->CardOnlineRmb();
        
		$this->assign("paytypehtm",$paytypehtm);//支付页面
        
        $this->assign("fortype", $fortype);
        $this->assign("orderInfo", $orderInfo);
        
		$this->display();
		
	}
	/**
	 * 当用户下单后，再点击确认要这个订单，这时才发送短息和电子邮件，并更新标识
	 */
	function yudingqueren(){
		$orderno=$_REQUEST["orderno"];//订单号
		$uid=$_REQUEST["uid"];//用户id
		$n=$_REQUEST["n"];//兑换的金额
		$pid=$_REQUEST["pid"];//预定的客栈ID
		$pname=$_REQUEST["pname"];//客栈名称
		$tomail=$_REQUEST["tomail"];//要发送的邮件
		
		if(getsubstr($orderno, "/^H[\d]+$/")=="") die("pass1");
		if(getsubstr($_REQUEST["tel"], "/^1[\d]{10}$/")=="") die("pass2");
		if(!is_numeric($uid)) die("pass3");
		if(!is_numeric($n)) die("pass4");
		
		
		$mr=M("order");
		$sql="update ".DQ."orderform set orderform36=1 where orderform3='".$orderno."'";
		$rs=$mr->execute($sql);
		if($rs){
			
			global $SYS_config;
			 //预定成功，发送短息.
			$smsa=A("Home/sms");
			$dsmsata["phoneno"]=$_REQUEST["tel"];
			$dsmsata["content"]="您的预定已经下单成功，订单号为:".$orderno.",请登陆您的会员中心查询";
			//$smsa->senddx($dsmsata);//正式上线后才启用短息发送功能
			
			//@todo:发送邮件
			require_once RootDir."/inc/MailClass.php";
			$mailc=file_get_contents($SYS_config["siteurl"]."/sendmail/createinnorderhtml-orderno-".$orderno);
		 	echo(sendmymail($tomail,"梦之旅","你的订单下单成功",$mailc))?" mailsendsuss":" mainsendpass";
		 		
			
			$temp=$SYS_config["xfsjfnumdy1jenum"]*$n;
			if($temp>0) uc_credit_exchange_request($uid, 1, 1, 1, -$temp);
			if(__USERNAME__) uc_feed_add("album",$uid,__USERNAME__,"","{actor} 有新活动了","预定了客栈: $pname ，快来围观!","","","",array());
		
		}else{
			echo "失败";
		}
	}
	
	function test(){
		 echo __USERNAME__;
	}
	
}

?>